7a60c1e293330b4ad233d4550b90008d453ede01,src/gr/uom/java/ast/decomposition/matching/ASTNodeMatcher.java,ASTNodeMatcher,match,#SimpleName#Object#,1781

Before Change


					else if(nodeBinding.getKind() == IBinding.TYPE && otherBinding.getKind() == IBinding.TYPE) {
						ITypeBinding nodeTypeBinding = (ITypeBinding)nodeBinding;
						ITypeBinding otherTypeBinding = (ITypeBinding)otherBinding;
						if((!nodeTypeBinding.isEqualTo(otherTypeBinding) || !nodeTypeBinding.getQualifiedName().equals(otherTypeBinding.getQualifiedName())) && typeMatch) {
							Difference diff = new Difference(nodeTypeBinding.getQualifiedName(),
									otherTypeBinding.getQualifiedName(),DifferenceType.SUBCLASS_TYPE_MISMATCH);
							astNodeDifference.addDifference(diff);
						}
					}
					else if(nodeBinding.getKind() == IBinding.VARIABLE && otherBinding.getKind() == IBinding.VARIABLE) {
						if(!node.getIdentifier().equals(o.getIdentifier())) {
							Difference diff = new Difference(node.getIdentifier(),o.getIdentifier(),DifferenceType.VARIABLE_NAME_MISMATCH);
							astNodeDifference.addDifference(diff);
						}
					}
				}
				if(!typeMatch) {
					Difference diff = new Difference(node.resolveTypeBinding().getQualifiedName(),o.resolveTypeBinding().getQualifiedName(),DifferenceType.VARIABLE_TYPE_MISMATCH);
					astNodeDifference.addDifference(diff);
				}
				else {
					if(nodeBinding != null && otherBinding != null && nodeBinding.getKind() == IBinding.VARIABLE && otherBinding.getKind() == IBinding.VARIABLE) {
						IVariableBinding nodeVariableBinding = (IVariableBinding)nodeBinding;
						IVariableBinding otherVariableBinding = (IVariableBinding)otherBinding;
						ITypeBinding nodeTypeBinding = nodeVariableBinding.getType();
						ITypeBinding otherTypeBinding = otherVariableBinding.getType();
						if(nodeTypeBinding != null && otherTypeBinding != null && (!nodeTypeBinding.isEqualTo(otherTypeBinding) || !nodeTypeBinding.getQualifiedName().equals(otherTypeBinding.getQualifiedName()))) {
							Difference diff = new Difference(nodeTypeBinding.getQualifiedName(),otherTypeBinding.getQualifiedName(),DifferenceType.SUBCLASS_TYPE_MISMATCH);
							astNodeDifference.addDifference(diff);
						}
					}
				}
			}
			else {
				if(typeMatch) {
					if(other instanceof Expression && !(other instanceof NullLiteral)) {
						Expression o = (Expression)other;
						ITypeBinding nodeTypeBinding = node.resolveTypeBinding();
						ITypeBinding otherTypeBinding = o.resolveTypeBinding();
						if((!nodeTypeBinding.isEqualTo(otherTypeBinding) || !nodeTypeBinding.getQualifiedName().equals(otherTypeBinding.getQualifiedName()))) {
							Difference diff = new Difference(nodeTypeBinding.getQualifiedName(),otherTypeBinding.getQualifiedName(),DifferenceType.SUBCLASS_TYPE_MISMATCH);
							astNodeDifference.addDifference(diff);
						}

After Change


						}
					}
					else if(nodeBinding.getKind() == IBinding.TYPE && otherBinding.getKind() == IBinding.TYPE) {
						ITypeBinding nodeTypeBinding = (ITypeBinding)nodeBinding;
						ITypeBinding otherTypeBinding = (ITypeBinding)otherBinding;
						if(subclassTypeMismatch(nodeTypeBinding, otherTypeBinding) && typeMatch) {
							Difference diff = new Difference(nodeTypeBinding.getQualifiedName(),
									otherTypeBinding.getQualifiedName(),DifferenceType.SUBCLASS_TYPE_MISMATCH);
							astNodeDifference.addDifference(diff);
						}
					}
					else if(nodeBinding.getKind() == IBinding.VARIABLE && otherBinding.getKind() == IBinding.VARIABLE) {
						if(!node.getIdentifier().equals(o.getIdentifier())) {
							Difference diff = new Difference(node.getIdentifier(),o.getIdentifier(),DifferenceType.VARIABLE_NAME_MISMATCH);
							astNodeDifference.addDifference(diff);
						}
					}
				}
				if(!typeMatch) {
					Difference diff = new Difference(node.resolveTypeBinding().getQualifiedName(),o.resolveTypeBinding().getQualifiedName(),DifferenceType.VARIABLE_TYPE_MISMATCH);
					astNodeDifference.addDifference(diff);
				}
				else {
					if(nodeBinding != null && otherBinding != null && nodeBinding.getKind() == IBinding.VARIABLE && otherBinding.getKind() == IBinding.VARIABLE) {
						IVariableBinding nodeVariableBinding = (IVariableBinding)nodeBinding;
						IVariableBinding otherVariableBinding = (IVariableBinding)otherBinding;
						ITypeBinding nodeTypeBinding = nodeVariableBinding.getType();
						ITypeBinding otherTypeBinding = otherVariableBinding.getType();
						if(nodeTypeBinding != null && otherTypeBinding != null && subclassTypeMismatch(nodeTypeBinding, otherTypeBinding)) {
							Difference diff = new Difference(nodeTypeBinding.getQualifiedName(),otherTypeBinding.getQualifiedName(),DifferenceType.SUBCLASS_TYPE_MISMATCH);
							astNodeDifference.addDifference(diff);
						}
					}
				}
			}
			else {
				if(typeMatch) {
					if(other instanceof Expression && !(other instanceof NullLiteral)) {
						Expression o = (Expression)other;
						ITypeBinding nodeTypeBinding = node.resolveTypeBinding();
						ITypeBinding otherTypeBinding = o.resolveTypeBinding();
						if(subclassTypeMismatch(nodeTypeBinding, otherTypeBinding)) {
							Difference diff = new Difference(nodeTypeBinding.getQualifiedName(),otherTypeBinding.getQualifiedName(),DifferenceType.SUBCLASS_TYPE_MISMATCH);